﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Project_KhuyenMaiVang.DataProvider;
using System.Data;
using System.Data.SqlClient;
using Project_KhuyenMaiVang.Models;

namespace Project_KhuyenMaiVang.DAO
{
    public class TinhTrangDonDatHangDAO : MyDataProvider
    {
        // Lấy tình trạng đơn đặt hàng
        // parameter    : mã tình trạng đơn hàng
        // return       : tình trạng đơn hàng
        public string getOrderState(int idOrderState)
        {
            TinhTrangDonDatHangDTO result = new TinhTrangDonDatHangDTO();
            try
            {
                string strCommand = "SELECT* FROM TinhTrangDonDatHang WHERE MaTinhTrangDonDatHang = " + idOrderState.ToString();
                _Adapter = new SqlDataAdapter(strCommand, _Connection);
                DataSet dataset = new DataSet();
                _Adapter.Fill(dataset);
                DataTable dt = dataset.Tables[0];
                object ob = GetDataFromDataRow(dt, 0);
                result = (TinhTrangDonDatHangDTO)ob;
            }
            catch (Exception ex)
            {
                result = null;
            }

            return result.TinhTrang;
        }

        protected override object GetDataFromDataRow(DataTable dt, int i)
        {
            TinhTrangDonDatHangDTO state = new TinhTrangDonDatHangDTO();
            state.IdTinhTrangDonDatHang = Int32.Parse(dt.Rows[i]["MaTinhTrangDonDatHang"].ToString());
            state.TinhTrang = dt.Rows[i]["TinhTrang"].ToString();

            return (object)state;
        }

        // Lấy tất cả các tình trạng đơn hàng trong hệ thống
        // parameter    : void
        // return       : List<TinhTrangDonDatHangDTO>
        public List<TinhTrangDonDatHangDTO> getAllOrderStates()
        {
            List<TinhTrangDonDatHangDTO> result = new List<TinhTrangDonDatHangDTO>();
            try
            {
                string strCommand = "SELECT* FROM TinhTrangDonDatHang";
                _Adapter = new SqlDataAdapter(strCommand, _Connection);
                DataSet dataset = new DataSet();
                _Adapter.Fill(dataset);
                DataTable dt = dataset.Tables[0];
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    object ob = GetDataFromDataRow(dt, i);
                    result.Add((TinhTrangDonDatHangDTO)ob);
                }
            }
            catch (Exception ex)
            {
                result = null;
            }

            return result;
        }
    }
}